package com.settlement.system.model.entity.common;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.*;
import com.alibaba.excel.enums.BooleanEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * NC凭证明细
 * @author Ximi
 * @since 2020-07-10
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@ContentRowHeight(14)
@HeadRowHeight(14)
@HeadFontStyle(fontHeightInPoints = 11,bold = BooleanEnum.FALSE)

public class TblNcVurcherSummary extends BaseModel implements Serializable {


    /**
     * 渠道编码
     */
    private String channelNo;

    /**
     * 渠道
     */
    private String channelName;

    /**
     * 统一账单ID
     */
    @ApiModelProperty(value = "统一账单ID")
    private String unificationBillId;

    @ColumnWidth(9)
    @ExcelProperty(value = {"*导入NC","\"null_$head,main_m_pk_accountingbook,main_m_pk_vouchertype,main_m_num,main_m_attachment,main_pk_prepared,main_m_prepareddate,m_explanation,m_accsubjcode,m_pk_currtype,m_debitamount,m_localdebitamount,m_groupdebitamount,m_globaldebitamount,unitname,m_price,m_debitquantity,m_creditquantity,m_creditamount,m_localcreditamount,m_groupcreditamount,m_globalcreditamount,m_checkno,m_checkdate,verifyno,verifydate,m_bankaccount,billtype,m_checkstyle,vat_pk_vatcountry,vat_pk_receivecountry,vat_businesscode,vat_pk_clientvatcode,vat_pk_suppliervatcode,vat_pk_taxcode,vat_direction,vat_moneyamount,m_excrate2,excrate3,excrate4,ass_1,ass_2,ass_3,ass_4,ass_5,ass_6,ass_7,ass_8,ass_9\""})
    private String importNc;

    /**
     * 核算账簿编码
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","核算账簿"} )
    @ApiModelProperty(value = "核算账簿")
    private String ncCheckAccountBookNo;

    /**
     * 凭证类别编码
     */
    @ColumnWidth(value = 13 )
    @ExcelProperty(value = {"","凭证类别编码"} )
    @ApiModelProperty(value = "凭证类别编码")
    private String vurcherCategoryNo;

    /**
     * 凭证号
     */
    @ColumnWidth(7)
    @ExcelProperty(value = {"","凭证号"}  )
    @ApiModelProperty(value = "凭证号")
    private String vurcherNumber;

    /**
     * 附单据数
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","附单据数"}  )
    @ApiModelProperty(value = "附单据数")
    private BigDecimal additionalNumber;

    /**
     * 制单人编码
     */
    @ColumnWidth(value = 11 )
    @ExcelProperty(value = {"","制单人编码"} )
    @ApiModelProperty(value = "制单人编码")
    private String editorNo;

    /**
     * 制单日期
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","制单日期"})
    @ApiModelProperty(value = "制单日期")
    @JsonFormat(pattern="yyyy/MM/dd",timezone = "GMT+8")
    private Date editorDate;

    /**
     * 摘要
     */
    @ColumnWidth(5)
    @ExcelProperty(value = {"","摘要"})
    @ApiModelProperty(value = "摘要")
    private String summary;

    /**
     * 科目编码
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","科目编码"})
    @ApiModelProperty(value = "科目编码")
    private String subjectNo;

    /**
     * 币种
     */
    @ColumnWidth(5)
    @ExcelProperty(value = {"","币种"})
    @ApiModelProperty(value = "币种")
    private String coinType;

    /**
     * 原币借方金额
     */
    @ColumnWidth(13)
    @ExcelProperty(value = {"","原币借方金额"})
    @ApiModelProperty(value = "原币借方金额")
    private BigDecimal originCoinBorrowerAmount;

    /**
     * 本币借方金额
     */
    @ColumnWidth(13)
    @ExcelProperty(value = {"","本币借方金额"})
    @ApiModelProperty(value = "本币借方金额")
    private BigDecimal targetCoinBorrowerAmount;

    /**
     * 集团本币借方金额
     */
    @ColumnWidth(17)
    @ExcelProperty(value = {"","集团本币借方金额"})
    @ApiModelProperty(value = "集团本币借方金额")
    private BigDecimal groupCoinBorrowerAmount;

    /**
     * 全局本币借方金额
     */
    @ColumnWidth(17)
    @ExcelProperty(value = {"","全局本币借方金额"})
    @ApiModelProperty(value = "全局本币借方金额")
    private BigDecimal globalCoinBorrowerAmount;

    /**
     * 业务单元编码
     */
    @ColumnWidth(value = 13 )
    @ExcelProperty(value = {"","业务单元编码"})
    @ApiModelProperty(value = "业务单元编码")
    private String businessUnitNo;

    /**
     * 单价
     */
    @ColumnWidth(5)
    @ExcelProperty(value = {"","单价"})
    @ApiModelProperty(value = "单价")
    private BigDecimal unitPrice;

    /**
     * 借方数量
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","借方数量"})
    @ApiModelProperty(value = "借方数量")
    private Integer borrowerQty;

    /**
     * 贷方数量
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","贷方数量"})
    @ApiModelProperty(value = "贷方数量")
    private Integer lenderQty;

    /**
     * 原币贷方金额
     */
    @ColumnWidth(13)
    @ExcelProperty(value = {"","原币贷方金额"})
    @ApiModelProperty(value = "原币贷方金额")
    private BigDecimal originCoinLoanAmount;

    /**
     * 本币贷方金额
     */
    @ColumnWidth(13)
    @ExcelProperty(value = {"","本币贷方金额"})
    @ApiModelProperty(value = "本币贷方金额")
    private BigDecimal targetCoinLoanAmount;

    /**
     * 集团本币贷方金额
     */
    @ColumnWidth(17)
    @ExcelProperty(value = {"","集团本币贷方金额"})
    @ApiModelProperty(value = "集团本币贷方金额")
    private BigDecimal groupCoinLoanAmount;

    /**
     * 全局本币贷方金额
     */
    @ColumnWidth(17)
    @ExcelProperty(value = {"","全局本币贷方金额"})
    @ApiModelProperty(value = "全局本币贷方金额")
    private BigDecimal globalCoinLoanAmount;

    /**
     * 结算号
     */
    @ColumnWidth(7)
    @ExcelProperty(value = {"","结算号"})
    @ApiModelProperty(value = "结算号")
    private String settleNo;

    /**
     * 结算日期
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","结算日期"})
    @ApiModelProperty(value = "结算日期")
    @JsonFormat(pattern="yyyy/MM/dd HH:mm:ss",timezone = "GMT+8")
    private Date settleDate;

    /**
     * 核销号
     */
    @ColumnWidth(7)
    @ExcelProperty(value = {"","核销号"})
    @ApiModelProperty(value = "核销号")
    private String chargeOffNo;

    /**
     * 业务日期
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","业务日期"})
    @ApiModelProperty(value = "业务日期")
    @JsonFormat(pattern="yyyy/MM/dd",timezone = "GMT+8")
    private Date businessDate;

    /**
     * 银行账户
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","银行账户"})
    @ApiModelProperty(value = "银行账户")
    private String bankAccount;

    /**
     * 票据类型
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","票据类型"})
    @ApiModelProperty(value = "票据类型")
    private String ticketType;

    /**
     * 结算方式
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","结算方式"})
    @ApiModelProperty(value = "结算方式")
    private String settleMethod;

    /**
     * 报税国家
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","报税国家"})
    @ApiModelProperty(value = "报税国家")
    private String handInTaxCountry;

    /**
     * 收货国
     */
    @ColumnWidth(7)
    @ExcelProperty(value = {"","收货国"})
    @ApiModelProperty(value = "收货国")
    private String recevieGoodsCountry;

    /**
     * 交易代码
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","交易代码"})
    @ApiModelProperty(value = "交易代码")
    private String exchangeCode;

    /**
     * 客户VAT注册码
     */
    @ColumnWidth(14)
    @ExcelProperty(value = {"","客户VAT注册码"})
    @ApiModelProperty(value = "客户VAT注册码")
    private String customVatRegisterCode;

    /**
     * 供应商VAT注册码
     */
    @ColumnWidth(16)
    @ExcelProperty(value = {"","供应商VAT注册码"})
    @ApiModelProperty(value = "供应商VAT注册码")
    private String supplierVatRegisterCode;

    /**
     * 税码
     */
    @ColumnWidth(5)
    @ExcelProperty(value = {"","税码"})
    @ApiModelProperty(value = "税码")
    private String taxCode;

    /**
     * VAT方向
     */
    @ColumnWidth(8)
    @ExcelProperty(value = {"","VAT方向"})
    @ApiModelProperty(value = "VAT方向")
    private String vatDirection;

    /**
     * 计税金额
     */
    @ColumnWidth(9)
    @ExcelProperty(value = {"","计税金额"})
    @ApiModelProperty(value = "计税金额")
    private String calculateTaxAmount;

    /**
     * 组织本币汇率
     */
    @ColumnWidth(13)
    @ExcelProperty(value = {"","组织本币汇率"})
    @ApiModelProperty(value = "组织本币汇率")
    private BigDecimal organizationCoinTax;

    /**
     * 集团本币汇率
     */
    @ColumnWidth(13)
    @ExcelProperty(value = {"","集团本币汇率"})
    @ApiModelProperty(value = "集团本币汇率")
    private BigDecimal groupCoinTax;

    /**
     * 全局本币汇率
     */
    @ColumnWidth(13)
    @ExcelProperty(value = {"","全局本币汇率"})
    @ApiModelProperty(value = "全局本币汇率")
    private BigDecimal globalCoinTax;

    /**
     * 辅助核算1来源
     */
    private String checkArithmeticSource1;

    /**
     * 辅助核算1
     */
    @ColumnWidth(10)
    @ExcelProperty(value = {"","辅助核算1"})
    @ApiModelProperty(value = "辅助核算1")
    private String checkArithmetic1;

    /**
     * 辅助核算2来源
     */
    private String checkArithmeticSource2;

    /**
     * 辅助核算2
     */
    @ColumnWidth(10)
    @ExcelProperty(value = {"","辅助核算2"})
    @ApiModelProperty(value = "辅助核算2")
    private String checkArithmetic2;

    /**
     * 辅助核算3来源
     */
    private String checkArithmeticSource3;

    /**
     * 辅助核算3
     */
    @ColumnWidth(10)
    @ExcelProperty(value = {"","辅助核算3"})
    @ApiModelProperty(value = "辅助核算3")
    private String checkArithmetic3;

    /**
     * 辅助核算4来源
     */
    private String checkArithmeticSource4;

    /**
     * 辅助核算4
     */
    @ColumnWidth(10)
    @ExcelProperty(value = {"","辅助核算4"})
    @ApiModelProperty(value = "辅助核算4")
    private String checkArithmetic4;

    /**
     * 辅助核算5来源
     */
    private String checkArithmeticSource5;

    /**
     * 辅助核算5
     */
    @ColumnWidth(10)
    @ExcelProperty(value = {"","辅助核算5"})
    @ApiModelProperty(value = "辅助核算5")
    private String checkArithmetic5;

    /**
     * 辅助核算6来源
     */
    private String checkArithmeticSource6;

    /**
     * 辅助核算6
     */
    @ColumnWidth(10)
    @ExcelProperty(value = {"","辅助核算6"})
    @ApiModelProperty(value = "辅助核算6")
    private String checkArithmetic6;

    /**
     * 辅助核算7来源
     */
    private String checkArithmeticSource7;

    /**
     * 辅助核算7
     */
    @ColumnWidth(10)
    @ExcelProperty(value = {"","辅助核算7"})
    @ApiModelProperty(value = "辅助核算7")
    private String checkArithmetic7;

    /**
     * 辅助核算8来源
     */
    private String checkArithmeticSource8;

    /**
     * 辅助核算8
     */
    @ColumnWidth(10)
    @ExcelProperty(value = {"","辅助核算8"})
    @ApiModelProperty(value = "辅助核算8")
    private String checkArithmetic8;

    /**
     * 辅助核算9来源
     */
    private String checkArithmeticSource9;

    /**
     * 辅助核算9
     */
    @ColumnWidth(10)
    @ExcelProperty(value = {"","辅助核算9"})
    @ApiModelProperty(value = "辅助核算9")
    private String checkArithmetic9;

    /**
     * 入账主体
     */
    @ApiModelProperty(value = "入账主体")
    private String companyNo;

    /**
     * NC店铺
     */
    //private String ncShopName;

    /**
     * 记账项
     */
    //private String recordAccountProject;

}
